MicroEye : A low-cost online tool wear monitoring system with modular 3D-printed components for micro-milling application

Graphical abstract


Hardware in context
Tool condition monitoring (TCM) has been researched for more than two decades, primarily for general machining processes such as macro-milling. The growing demand for micro-products has attracted researchers to put more effort into the TCM developments for the micro-milling domain. Tool wear monitoring (TWM) is a subset of the TCM field, which takes the wear of the tool as the object of the monitoring process. The tool wear itself is a physical condition occurring on the tool surface, particularly in the cutting edge area. Several image-based tool condition monitoring (TCM) systems for the macro and micro-milling have been developed in the past [1][2][3][4][5][6][7]. Such TCM systems with a direct measurement approach can capture the wear occurrence better than the indirect measurement (such as by using force, vibration, or acoustic emission sensors) since the image series of the tool surface can show directly whether the wear has progressed or not.

Hardware description
MicroEye is a TWM system with a direct visual measurement approach. MicroEye directly measures the tool wear based on the images of the cutting tool surface. MicroEye consists of a 6-DOF (degree-of-freedom) positioning system serially constructed from six 3D-printed links. The microscope camera as the vision sensor is attached to the positioning system's endeffector (last link). 6-DOF positioning system gives freedom in locating the camera to any positions that produce the best viewing angle for image acquisition. Another point of view, the 6-DOF positioning system also gives more freedom for the users in selecting the location of MicroEye base at the limited area of micro-milling environment, while at the same time keeping the same desired viewing angle of the camera. During the monitoring process, the cutting tool is not necessarily detached from the collet when the camera captures the images of the tool surface. Tiny position changes of the tool are avoided due to the absence of tool detachment, which guarantees that every measurement point in the one run of the micro-milling process is observed continuously with the same environment and machining condition.
MicroEye brings the concept of modular, 3D-printed, low-cost, and vision-based TWM. The entire system of MicroEye is assembled from the nine modules available. The modules are base, first link to sixth link, microscope camera, and controller unit. The connection between modules is designed carefully for the ease of the user. The structure and body of links are 3Dprinted to foster customization, open-source, and rapid fabrication. The 3D-printed components of MicroEye are lower in fabrication cost compared to metal-based components. The microscope camera is a low-cost USB microscope type widely available in the market with 200 times magnification factor.

Positioning system
The positioning system holds the microscope camera and achieves the desired viewing angle for image acquisition. The positioning system is movable since a DC motor actuates every joint. The stepper motor is for the first and last joints. The servo motor is for the second joint until the fifth joint. The kinematics of the positioning system follows PRRRRP (Prismatic-Revo lute-Revolute-Revolute-Revolute-Prismatic) joints arrangement. The structure of the whole positioning system can be seen in Fig. 2. The exploded view of the design shows the components from the seven modules of the positioning system.

Base
The base is the main support for the whole system of MicroEye. The base body is a 3D-printed component with PLA (PolyLactic Acid) material. The base contains a NEMA-17 stepper motor as the actuator of the first joint. In order to produce linear motion, the motor shaft is connected to the lead screw through a flexible coupling. The lead screw has a 1.5 mm pitch and 150 mm total length. Two guiding rods provide motion support for the linear stage of the MicroEye first link. The effective range of linear motion is 30 mm.

First link
The first link body is PLA 3D-printed component. The body is attached to the commercially available metal linear stage. The servo motor as the second joint actuator of MicroEye is mounted to the body. The servo motor type is AX-12A made by Dynamixel and can rotate 300°.

Second and third links
The body of the second and third links have the shape of a lever bar from PLA 3D-printed component. The servo motor is attached to one end of the body for the actuation of the next joint respectively. The motion of the second and third links are rotational, driven by the motors from the respective previous links. The servo motor type is AX-12A made by Dynamixel and can rotate 300°. The mounting design for placing the servo motors is modified from CAD files provided by the manufacturer [9].

. Fourth link
The fourth link merely provides mounting for the servo motor XL-320 made by Dynamixel. The fourth link, together with its joint, is intended to give more capability to the system in orienting (a; b; c) the viewing angle of the microscope camera. In contrast, the first to the third joint achieves the desired location (X, Y, Z) of the observation point. XL-320 is faster and has a more compact size than AX-12A. The XL-320 is suitable for higher joints due to its size, weight, and lower power consumption. The body of the fourth link is PLA 3D-printed.

Fifth link
A lead screw actuated by a micro-stepper motor is attached to the body of the fifth link. The lead screw provides the capability to adjust the focal distance of the microscope camera. The forward and backward movement of the lead screw gives control for the user in adjusting the focal distance of the microscope camera. The motor can move 0.25 mm in one step with a maximum linear speed of 2.5 mm/s. The lead screw movement is the actuation of the sixth joint. The body of the fourth link is PLA 3D-printed.

Sixth link
The sixth link has the function of holding the microscope camera. The link is attached to the movable mounting at the lead screw of the sixth joint. The gripping power can be adjusted by turning the two bolts on the left and right sides of the link.

Microscope camera
The microscope camera is an AD4113ZT USB-type camera with 200x magnification and resolution maximum at 1.3 megapixels (1280 Â 1024) by Dino-Lite. The microscope camera is considered a decent and low-budget vision sensor compared to other solutions for digitally capturing tool surface conditions, such as scanning electron microscope (SEM) or desktop digital microscope. From the author's experience, the USB-type microscope camera is adequate to capture the wear areas of the micro-tool. However, the wear detection from the tool images should be accompanied by a good lighting environment and computer vision techniques.

Controller unit
The controller unit of MicroEye consists of the main controller and the six motor drivers. The role of the main controller is to receive commands from the externals, e.g., computer running the program of the micro-milling process sequence, joystick, or any serial terminal program for manual operation. Arduino Mega 2560 was chosen as the main controller for MicroEye. Six motor drivers are connected to each motor, depending on the motor type. The stepper motors of the first and sixth joints are driven using the A4998 driver module with a sixteenth-step division at maximum. The AX-12A servo motors of the second, third, and fourth joints are driven by using IC 74LS21N with an additional wiring scheme. The Arduino Mega 2560 and all motor drivers are integrated into one controller printed circuit board (PCB) for compactness. The schematic of the board wiring is presented in Fig. 3. The controller PCB is contained in the box enclosure to ensure the controller unit's safety and durability from external disturbances. The communication between the main controller and externals is facilitated by using serial communication. The externals send the ASCII string command to the main controller in the specified format as shown in Fig. 3. For example, if the user wants to move the MicroEye to configuration: 1 st joint = 5 mm, 2 nd joint = 20°, 3 rd joint = 30°, 4 th joint = 40°, 5 th joint = 50°, 6 th joint = 6 mm, the command would be "$,2,6,5,20,30,40,50,6\r" (without quote marking).

Forward kinematics
In order to define the forward kinematics of MicroEye, six joint coordinates are assigned to the joints of MicroEye by following the DH (Denavit-Hartenberg) convention [10] (Fig. 4). The i-th joint coordinate (F i ) is represented by a 4x4 homogenous transformation matrix. The joint coordinate also acts as the reference frame coordinate for the (i-1)-th link with respect to the world coordinate (F world ). The DH parameters parameterize the relative position between two consecutive joint coor-   dinates. The joint coordinate with respect to the world coordinate is formally defined in Eq. (1) with the DH parameters for each joint listed in the Table 1. For the base link, the reference frame coordinate is denoted as F base (a.k.a. F 0 ). The reference frame coordinate and the world coordinate can be chosen arbitrarily depending on the machining environment. In this work, the F 1 ; F base and F world are made coincidence to the F 2 for the convenience of kinematics calculation. Therefore, the relationship between F world ; F base , and F 2 is shown in Eq. (2).
A coordinate reference frame for the end-effector (F E ) should be located at the most intuitive location for the user to set the image-acquisition setting, i.e., at the most front of the camera lens (Fig. 4). The coordinate reference frame for the endeffector can be calculated by using Eq. 3. However, it should be noted that the transformation matrix from F 7 to F E can be different if the type of the camera, the lens radius, the mounting location are different from the one used in this work.
Thus, the transformation matrix should be adjusted for different cases, particularly to update the d f distance between the end-effector origin point and the F 7 origin point. .
The targeted end-effector position is denoted as F T E . The inverse kinematics calculation starts by finding the last joint coordinate (F 6 ) to satisfy the F T E constraint in Eq. (6). Then, the x unit vector (axis) of F 5 can be found by Eq. (7) so that the angle between the f * (asterisk) mark shows the joint variable. d i for the prismatic joint and h i for the revolute joint.
The origin point of joint coordinates F 5 and F 4 is calculated by Eqs. (9) and (10). In order to find the h 4 , the o 4 should be projected to the f z 5 by the projection function P Á ð Þ in Eq. (11) to form a triangle in the x-y plane of the world coordinate (see The h 3 and h 2 joint variables can be calculated in similar way with h 5 , that is by finding the x-unit vector of the related joint coordinates as shown in Eqs. (16)- (20). Since the F 2 is coincident with the world coordinate, the f

Key aspects of the hardware
MicroEye can be used to support TWM activities in several settings: Tool wear monitoring with limited machining area. Tool wear monitoring with the miniaturized micro-milling machine. Tool wear monitoring with moving measurement device.
Tool wear monitoring without tool detachment. Tool wear monitoring with budget limitation, e.g., for middle-low manufacturing sites, laboratories.

Design files
3.1. Design files summary .

Design files description .
Link1: 3D-printed body for the first link that mounts the servo motor of the second joint and connects to the linear stage of the first joint. Link2: 3D-printed body for the second link that mounts the servo motor of the third joint and connects to the servo motor horn of the second joint. Link3: 3D-printed body for the third link that mounts the servo motor of fourth joint and connects to the servo motor horn of the third joint. Link4: 3D-printed body for the fourth link that mounts the servo motor of the fifth joint and connects to the servo motor horn of the fourth joint. Link5: 3D-printed body for the fifth link that mounts the stepper motor of sixth joint and connects to the servo motor horn of the fifth joint. Link6: 3D-printed body for the sixth link that mounts the microscope camera and connects to the stepper motor of the sixth joint through linear stage mounting. SpacerInner: 3D-printed body for the inner spacer between arm link and servo motor. SpacerOuter: 3D-printed body for the outer spacer between arm link and servo motor. ControllerBackPCB: Template for printing the backside of controller unit PCB. ControllerFrontPCB: Template for printing the front side of controller unit PCB. ControllerSchematic: Wiring schematic of the controller unit PCB. FrontPanelSchematic: Wiring schematic of the front panel. WearAnalyzer: Python script to analyze the tool wear. SingleDetection: Python script to detect the tool wear of single image. BatchDetection: Python script to detect the tool wear of images in a batch.

Build instructions
The building process of MicroEye consists of five major steps: (1) printing the 3D-printed components, (2) assembling the positioning modules, (3) printing the controller PCB, (4) wiring the actuators of the positioning modules to the controller unit, and (5) building the enclosure with a front panel interface. The building process needs hand tools such as screwdrivers and pliers to assembly the positioning modules.

Printing 3D-printed components
The CAD models of the whole system, including its positioning system, have been shown in Fig. 2. Table 2 at sub-Section 3.1 summarizes the download location for all the 3D-print files. Table 3 shows the prices and sources of the MicroEye components. In order to achieve the minimum 3D-printing quality for the system, the printing process should follow below settings: The filament material is PLA (Poly Lactic Acid). High infill, minimum 70%. A raft layer is necessary to keep the dimension accurate, especially for the large flat surface.
It should be noted that the different models and types of 3D printers may produce different accuracy in the dimension of the 3D-printed object. Adjusting the targeted dimension in the CAD model relative to the reference one prior to the printing process is needed to compensate for the inaccuracy of printing. The adjustment process should be based on the experiment with the 3D printer itself. Furthermore, the surface roughness of the 3D-printed object is often deteriorated by some excessive or improper melted filament. Therefore, post-printing treatment is necessary to ensure that the assembly process of mating features of the component (e.g., hole, pin, or two mating surfaces) can be accomplished. Mini-grinder or cutter knife can be used as a tool to remove the excessive or improper melted filament. However, a mini-grinder should be used with notice, i.e., the heat dissipation from the continuous contact between the 3D-printed surface and the grinding tool can melt the surface itself. Therefore, lift-up of the grinding tool should be performed regularly to maintain the contact temperature adequate.

Building the base
In this work, the base of the positioning system was a commercial product for Computerized Numerical Control (CNC) linear actuator, which is available at the online marketplace. However, most of the base parts are common commercial products available in the market, excluding the 3D-printed bodies. Fig. 5.a shows the stepper motor attached to the base 3Dprinted body. Fig. 5.b shows the guiding rods, lead screw, lead screw nut, coupling, coupling nut, lock nut, and retaining rings. Fig. 5.c shows the linear ball bearings. Fig. 5.d shows the linear stage. The following steps are the assembly process of the base positioning system.
1. Insert the lead screw nut to the slot space below the linear stage ( Fig. 6.a). 2. Hit the outer part of the lead screw nut with a hammer so that the nut is forced and located in the middle of the slot hole ( Fig. 6.b). 3. Insert the guiding rods into the linear ball bearings. Each rod has two ball bearings on it. 4. Insert the guiding rods altogether with the linear bearings into the supporting holes in both sides of the base body (Fig. 6.c). From the four holes available, two holes are through-hole (THRU HOLE) for the entrance of the guiding rods. 5. Put the retaining rings to the small gap near the one end of the rods. The retaining ring prevents the rod's motion in the axial direction. (Fig. 6.d). 6. From the right side (of the Fig. 6.f), insert the lead screw through the middle hole of base body and mate it with the lead screw nut in the linear stage as seen in Fig. 6.e. 7. Turn the lead screw until its most front end is about to hit the end of the stepper motor shaft. 8. Connect the lead screw and stepper motor shaft with coupling and fasten the connection with the coupling nut. 9. Insert the lock nut to another end of the lead screw and turn it towards the edge of the guiding rods support (Fig. 6.f). 10. Screw the linear stage to the four linear ball bearings (Fig. 6.f). 1. Place the AX12A to the half pocket in the middle of the first link body (Fig. 7.b). 2. Fix the AX12A position by joining the B2R10 bolts with N2H nuts through holes at the wall of the servo motor pocket.

Building the second and third links
The 3D-printed body for the second and third links is identical but differs in size and dimension. Therefore, the assembly steps for both links are the same. The Fig. 7.c and Fig. 7.d show M2 rounding head 5 mm (B2R5) bolts, M2 hexagon (N2H) nuts, the links 3D-printed bodies, and the servo motor (AX12A). The following steps of assembly are for both links and repeated consecutively.
1. Put the AX12A to the one end of the link 3D-printed body, the one with smaller gap that fits to the width of the AX12A. 2. Fix the AX12A position by joining the B2R5 bolts with N2H nuts through holes near the edge of the link body (Fig. 7.e).  The two spacers (big and small) at Fig. 7.f are for the later purpose when the whole system assembly is performed.  Fig. 8.e. 2. Screw the fifth link 3D-printed body to the horn of the XL320 by using B2R5 bolts (Fig. 8.d). 3. Attach the micro-stepper motor (MSTEP) to the fifth link 3D-printed body by using B3R8 bolt and N3H nut. Due to the very narrow space of the nut location, it is suggested to use a tweezer to keep the N3H nut in place (Fig. 8.c and Fig. 8.g). The result can be seen in Fig. 8.h.   Five sub-modules of the positioning system have been built in the previous steps. The following steps explain the assembly process of the whole positioning system from its sub-modules (including the sixth link). The whole assembly of the positioning system module is shown in the most left figures of Fig. 9. 1. Mount the servo motor XL320 from Fig. 8.h to the 3D-printed body of fourth link in Fig. 8.e. by using B3R8 bolt and N3H nut ( Fig. 9.a). 2. Use tweezer to keep N3H nut in narrow place ( Fig. 9.b). 3. Attach (snap) the sixth link 3D-printed body to the mounting of the micro-stepper motor (MSTEP). The result can be seen in Fig. 9.c. 4. Screw the one end of the third link 3D-printed body from the Fig. 7.f to the mounting horn of AX12A motor in the second link by using B2R5 bolt, N2H nut, and B3R8 nut (Fig. 9.d and Fig. 9.e). To fill the gap between the motor and the link surface, the big and small spacers are located in pair, as seen in Fig. 9.f. 5. Similar to the previous step, screw the one end of the second link 3D-printed body from the Fig. 7.f to the mounting horn of AX12A motor in the first link, as seen in Fig. 9.g and Fig. 9.h.

Building the controller unit
Building the controller unit needs hand tools such as solder and cable cutter. Followings are the steps to build the controller unit: 13. Plug each motor cable into the designed connector at PCB.

Building the controller enclosure and the front panel interface
The enclosure protects the controller unit from unintended external disturbances and gives the user a convenient way to set up MicroEye. Fig. 11 shows the front panel wiring schematic and the exploded view of the enclosure assembly. Two major parts of the building steps are the wiring of the front panel interface and the assembly of the 3D-printed enclosure. The video of the assembly sequence is available in https://doi.org/10.17632/w26x9yrbtm.2 [13].
1. Wire the power button, mode button, power supply cable, actuators cables, and all the LEDs according to the schematic of the front panel (Table 2). Please ensure that all the wires are passed through the holes in the front cover, the hole guard, the retainer, and the hole at the back transparent acrylic (No. 6, 14, 15, and 12) before connecting to the Arduino Mega.   6. Validation and characterization

Positioning
The experiment has been conducted to validate and characterize the MicroEye performance based on: (A) motor angular position error, (B) motor angular position repeatability, (C) end-effector linear position error, and (D) end-effector linear position repeatability. The experiment was performed with two scenarios, i.e., with load and no-load at the end-effector. In every session, the MicroEye end-effector was moved to a particular position of the tool tip in the workspace by following reference configuration (Table 4). That position represented the position when MicroEye captured images of the tool surface. The tool axis is normal to the image plane of the camera. The tool axis orientation was set to the three values, i.e. 45°, 60°, and 90°with respect to vertical axis (similar to Fig. 14 without dial gauge). The camera attached to the end-effector is considered as the load for the MicroEye. The end-effector motion from the home position to the tool tip position was repeated ten times every session.
The series of measurement p at particular tool orientation i is formally defined as P i in Eq. (22), with n ¼ 10. The characterization parameters, i.e., error (e) and repeatability (r 2 ) of MicroEye were calculated for the 2 nd joint, 3 rd joint, 4 th joint, and end-effector from the m groups of measurements based on the tool orientation values. Joint angular position (h 2 ; h 3 ; h 4 ) and end-effector linear position (x end ; y end ) were the variables of the system to be examined. After the end-effector reached the tool tip position, the error (e) of angular position was measured by subtracting the last read angle (h) with the reference angle (h r ) from each motor. The information of the last read angle from the motor's built-in sensor is considered as the real angular position to calculate the real linear position (x; y) of the end-effector in the Cartesian coordinate by using the forward kinematics equation. Then, the linear position error was measured by subtracting the real linear position (x; y) with the reference linear position (x r ; y r ). It should be noted that the angular position information from the built-in sensor in the motor has a measurement range from 0°to 300°with 1024 resolution (% 0:29 ) [23]. The error and repeatability were calculated based on Eq. (23) and (25). The repeatability is defined as the variance of the measurement range (R) with the d 2 constant depending on the size (n) of measurements in one group. The d 2 constant is taken from appendix table VI in [24]. The data of angular and linear position from the experiment is shown in Fig. 15.
Besides using the latest information of angular position from the built-in motor sensor (experiment A, B, C), another calculation of error and repeatability under the load condition was performed using a dial gauge as the measurement tool. The linear displacement at some particular reference position (experiment D) based on three tool orientation values was repeatedly measured ten times. The dial gauge has a 0.01 mm resolution with a measurement range from 0 mm to 10 mm. Fig. 16 shows the measurement data for experiment D.  The summary of characterization parameters is shown in Table 5. Partial results of the experiment have also been presented in [25]. It can be seen from the result that the load at the end-effector contributes to the increase of the angular and linear positional error. That happened since the motors had already reached their maximum continuous torque when the load from the camera was applied. Furthermore, the more significant positional error happened for the lower-index joints (e.g., 2 nd joint compared to 3 rd joint). That happened since the motor of lower-index joints has to overcome the heavier load than the higher-index joints. Above all, the MicroEye achieved the angular position error as low as 0.596°, the linear position error as low as 0.0336 cm in the x-axis and 0.767 cm in the y-axis (%0.767 cm in resultant). This maximum experimental accuracy is sufficient to ensure that the ROI (region of interest) image of the sub-millimeter-sized tool is viewable by the camera during the tool wear monitoring. Furthermore, the dial gauge measurement for positional accuracy under the load condition has confirmed that the position error was 0.0873 cm (one-tenth resultant of linear position error in experiment C).

Image acquisition
The experiment of image acquisition has been conducted with micro-tool wear as the object. The micro-tool has 1 mm cutting diameter, 3 mm shank diameter, 38 mm length, and two flutes. The micro-tool is for end-milling purposes. At the beginning of the experiment, the preparation step was conducted to set the distance between the end-effector (most outer part of the camera lens) and the micro-tool. The magnification dial on the camera was adjusted to get the image focus. The nominal distance and magnification setting were kept constant through all experiment runs. Sample image of the tool bottom is shown in Fig. 17.a. The original image size from the camera was set to 1280 Â 1024 pixels. The region of interest (ROI)    was set to 400 Â 400 pixels located at the center of the original image. Within the ROI, the tool wear detection algorithm localizes the location of the wear region. The flowchart of the algorithm is shown in Fig. 17.d. In this wear detection algorithm, finding the features in the image I x; y ð Þ were performed by using SIFT (Scale-Invariant Feature Transform) technique with OpenCV computer vision library [26][27][28]. The SIFT gave output a number of features as the tuple of keypoints (k) and descriptors (d), shown in Eq. 26. The BFM (Brute Force Matching) algorithm was used to find whether the reference features existed in the tested image by using the descriptors information [29]. The cost function showing the closeness (Dd) between the two descriptors was based on L1-norm distance (Eq. 27). The features were ranked and thresholded based on the closeness value. Only the top-20 best features at maximum were used to calculate the bounding box of the wear region. Then, the centroid of the wear region was calculated based on the middle point of the diagonal line of the bounding box.
The images of the tool bottom were captured from the three tool orientations as suggested in the Table 4 with ten repetitions (data set and video are available in https://doi.org/10.17632/w26x9yrbtm.2 [13]). From the series of tool images, the best image is selected manually as the reference image (labeled as "reference" green text in Fig. 18). A 50 Â 50 pixels patch containing the wear region was cropped from the reference image as the template for the reference features (Fig. 17.d). Later, the other images within one group of measurements were compared to the reference image. From the experiment result in Fig. 18, it is shown that MicroEye was capable of containing the full wear region to the inside of the ROI with 86.66% (26 out of 30) success rate. With the full wear region inside the ROI, MicroEye achieved 100% (26 out of 26) success rate in detecting the wear region. It is also shown in Fig. 18 that the position of the tool center was mostly shifted from the center of ROI. That issue was related to the inaccuracy of MicroEye positioning. Failed detection may also occur even though the wear region was fully inside the ROI. This issue can be related to the performance of the algorithm itself. The most probable cause was the considerably big change of light reflection (due to random positional error) that underperformed the features detection by SIFT. Above all, the MicroEye has achieved 86.66% success rate in detecting the tool wear region regardless of the actual positional accuracy.

Tool wear analysis
The tool wear analysis was performed by comparing the detected wear region from the image acquisition step (sub-Section 7.2) and the fresh (newly unused) cutting edge image. The size of both images was set to 50x50 pixels. The wear region was automatically cropped from the original image by taking into account the centroid location of the detected wear region. The image's histogram was the parameter to see the difference between the worn tool and the fresh tools. The quantitative wear measure can be inferred from the histogram difference of the wear region image with respect to the fresh cutting edge image. One reference image of the fresh cutting tool was dedicated for each tool orientation to accomodate the difference of light reflectance between the tool orientations. The reference image of the fresh cutting tool can be seen in Fig. 19.a.
In order to quantitatively measure the wear, three different metrics were used to calculate the histogram difference between images [30]. For the "Correlation" metrics, a higher value (%1) means that the two images are identical. Oppositely, for the "Chi-squared" and "Bhattacharyya distance" metrics, a lower value (%0) shows the similarity between the two  images. Fig. 20 shows that the most wear areas detected by the MicroEye can be consistently distinguished from the fresh cutting edge, e.g. %0.8 difference in "Correlation" and "Bhattacharyya distance" metrics value. Such metrics value can be considered as the changes of the cutting edge condition (due to the wear) relative to its initial condition. Thus, the wear quantification is possible for further analysis or decision. However, the histogram difference of the three undetected wear areas (such as 60_4.bmp, 60_8.bmp, and 90_2.bmp in Fig. 18) can not be measured correctly due to the off-frame (obstructed) wear region.

Concluding remarks
MicroEye has been developed as an alternative solution for tool wear monitoring in micro-milling applications. MicroEye offers a low-cost online TWM which uses 3D-printing technology and image-based wear detection and analysis. MicroEye experiment in positioning, image acquisition, and tool wear analysis shows that MicroEye can achieve reasonable accuracy and quality to capture the wear ROI area. In the aspect of the wear analysis, MicroEye was able to distinguish the degradation of the cutting edge condition due to the wear existence. In order to enhance the success rate of the wear detection, more advanced techniques (e.g., using deep learning technique) may be implemented to create an algorithm for wear detection and analysis that is robust to environmental influences (such as light reflection). Furthermore, the success rate of the wear detection may also be enhanced by improving the position accuracy of MicroEye. Minimally, the improved accuracy of the position can fully capture the wear region of the tool all the time. Improving the position accuracy may be achieved by using a more powerful motor to avoid reaching the saturated area of the continuous torque.

Human and animal rights
None.

Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.